// 导入用户集合构造函数
const { User } = require('../../model/user');


module.exports = async(req, res) => {
    // 接收请求参数
    const { email, password } = req.body;
    // 如果用户没有输入邮件地址
    if (email.trim().length == 0 || password.trim().length == 0)
        return res.status(400).render('admin/error', { msg: '邮件地址或者密码错误' });
    // 如果查询到了用户 user变量的值是对象类型 对象中存储的是用户信息
    let user = await User.findOne({ email });
    // 查询到了用户
    if (user) {
        // 如果密码比对成功
        if (password == user.password) {
            // 登录成功
            // // 将用户名存储在请求对象中，session会生成一个cookie id,以后登陆后，请求中会自动携带cookie
            //  req.session.username 同样是全局可访问，可用于登录拦截   req.session.username
            req.session.username = user.username;
            req.session.role = user.role;   //登陆时判断用户是超级管理员还是普通用户
            // 将用户信心设为全局可查找  app.locals是全局存储中心  req下也有这个app属性
            //在使用时只需{{userInfo.username}} 即可使用
            req.app.locals.userInfo = user;

            //通过判断用户的身份来设置登陆成功后的跳转页面
            if (user.role == 'normal') {
                // 重定向到用户列表页面
                res.redirect('/home');
            } else {
                res.redirect('/admin/user');
            }


        } else {
            // 没有查询到用户
            res.status(400).render('admin/error', { msg: '邮箱地址或者密码错误' })
        }
    } else {
        // 没有查询到用户
        res.status(400).render('admin/error', { msg: '邮箱地址或者密码错误' })
    }
}